package pe.com.pamer.siscal.programacion.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import pe.com.pamer.siscal.bean.Examen;
import pe.com.pamer.siscal.bean.Grado;
import pe.com.pamer.siscal.bean.Periodo;
import pe.com.pamer.siscal.programacion.service.ExamenService;
import pe.com.pamer.siscal.service.UtilService;
import pe.com.pamer.siscal.util.UtilConstantes;

@Controller
public class ExamenController {

	@Autowired
	private  ExamenService  examenService;

	@Autowired
	private UtilService  utilService;

@RequestMapping(value="/examenes"  , method=RequestMethod.GET)
public String obtenerExamenes(Model model){

   List<Examen>  ListaExamenes = examenService.obtenerExamenes();
   model.addAttribute("ListaExamenes", ListaExamenes);
    return  "examen-tiles";
}

@RequestMapping(value = "/form-upload" , method = RequestMethod.GET)
public String cargaPlantilla(@RequestParam("id") int id , Model model){

	Examen  examen =  examenService.obtenerExamen(id);
	model.addAttribute("examen", examen);
	return "examen-upload-tiles";
}

@RequestMapping(value = "/form-examen" , method = RequestMethod.GET)
public String irFormularioExamen(Model  model){
	List<Grado>  listaGrado = utilService.obtenerGrados();
	model.addAttribute("listaGrado", listaGrado);
	return "form-examen-tiles";
}

@RequestMapping(value = "/grabarExamen" , method = RequestMethod.POST )
public  String  grabarExamen(Examen examen , Model model){

   Periodo  periodoActual = utilService.obtenerPeriodoActual();
   examen.setPeriodo(periodoActual);
   examen.setStCargaPlantilla(UtilConstantes.ESTADO_CARGA_PLANTILLA_INICIAL);
   examen.setStCargaArchivo(UtilConstantes.ESTADO_CARGA_ARCHIVOS_INICIAL);
   examen.setStCalificacion(UtilConstantes.ESTADO_CALIFICACION_INICIAL);
   examenService.grabarExamen(examen);
   model.addAttribute("exito" , UtilConstantes.CODIGO_EXAMEN_EXITO);
   model.addAttribute("mensaje" , UtilConstantes.MENSAJE_EXAMEN_EXITO);
   return irFormularioExamen(model);
}
}
